package CollectionTest.Homework;

import java.util.*;

/*
6.定义一个泛型为String类型的List集合，统计该集合中每个字符
（注意，不是字符串）出现的次数。例如：集合中有”abc”、”bcd”两个元素，
程序最终输出结果为：“a = 1,b = 2,c = 2,d = 1”。
 */
public class Test6 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("wrjsae");
        list.add("sdere");
        list.add("wewrte");
        HashMap<Character,Integer> map = myContains(list);
        Set<Map.Entry<Character,Integer>> set = map.entrySet();
        for(Map.Entry<Character,Integer> m : set){
            System.out.println(m.getKey()+"="+m.getValue());
        }
    }

    public static HashMap<Character,Integer> myContains(List<String> list){
        Map<Character,Integer> map = new HashMap<>();
        for(String s : list){
            char[] chars = s.toCharArray();
            for(char c : chars){
                int count = 1;
                //如果Map包含c，则在基础上加1;
                if(map.containsKey(c)){
                    map.put(c,map.get(c)+count);
                //如果不包含，则直接添加该元素
                }else{
                    map.put(c,count);
                }
            }
        }
        return (HashMap<Character, Integer>) map;
    }
}
